package com.cc.seckill.service;

import com.cc.seckill.dto.Exposer;
import com.cc.seckill.dto.SecKillExecution;
import com.cc.seckill.entity.SecKill;
import com.cc.seckill.exception.RepeatKillException;
import com.cc.seckill.exception.SecKillException;

import java.util.List;

public interface SecKillService {

//    查询所有秒杀记录
    List<SecKill> getSecKillList();

    /**
     *  查询一个秒杀记录
     * @param secKillId
     * @return
     */
    SecKill getById(long secKillId);

    /**
     *  秒杀开启时，输出秒杀接口地址，
     *  否则输出系统时间和秒杀时间
     * @param secKillId
     */
    Exposer exportSecKillUrl(long secKillId);

    /**
     *  执行秒杀操作
     * @param secKillId
     * @param userPhone
     * @param md5
     */
    SecKillExecution executeSecKill(long secKillId, long userPhone, String md5)
            throws RepeatKillException,SecKillException;


}
